package cn.sxt.oop;

/**
 * 非静态内部类
 * 成员内部类(可以使用private、default、protected、public任意进行修饰。 类文件：外部类$内部类.class)
 */
public class TestInnerClass {
    public static void main(String[] args) {
        //正常创建类
        Outer outer = new Outer();
        outer.testOuter();

        //创建内部类对象
        Outer.Inner inner = new Outer().new Inner();
        inner.testInner();
    }
}

class Outer{
    private int age = 10;
    public void testOuter(){
        System.out.println("testOuter()");
    }
    public class Inner{
        private int age = 20;
        public void testInner(){
            int age = 30;
            System.out.println("调用主类成员变量："+Outer.this.age);
            System.out.println("调用内部类成员变量："+this.age);
            System.out.println("调用方法内变量："+age);
        }

    }
}